home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume2 / x11.3 / patch7 < prev    next >
Encoding:
Internet Message Format  |  1989-01-09  |  46.3 KB

  1. Path: uunet!wyse!mikew
  2. From: mikew@wyse.wyse.com (Mike Wexler)
  3. Newsgroups: comp.sources.x
  4. Subject: v02i082:  X11 Release 3, Patch7
  5. Message-ID: <1977@wyse.wyse.com>
  6. Date: 10 Jan 89 01:42:21 GMT
  7. Organization: Wyse Technology, San Jose
  8. Lines: 1489
  9. Approved: mikew@wyse.com
  10.  
  11. Submitted-by: jim@expo.lcs.mit.edu (Jim Fulton)
  12. Posting-number: Volume 2, Issue 82
  13. Archive-name: x11.3/patch7
  14.  
  15.  
  16.  
  17.                Created on Monday, 9 January 1989
  18.  
  19.                   PART 3 of 3
  20.  
  21.  
  22. Fixes 5, 6, and 7 are part of a single update to the xman program.  Together
  23. they affect the following files:
  24.  
  25.     clients/xman/CHANGES
  26.     clients/xman/README
  27.     clients/xman/ScrollByL.c
  28.     clients/xman/TODO
  29.     clients/xman/buttons.c
  30.     clients/xman/defs.h
  31.     clients/xman/globals.c
  32.     clients/xman/globals.h
  33.     clients/xman/handler.c
  34.     clients/xman/help.c
  35.     clients/xman/main.c
  36.     clients/xman/man.c
  37.     clients/xman/man.h
  38.     clients/xman/menu.c
  39.     clients/xman/misc.c
  40.     clients/xman/pages.c
  41.     clients/xman/search.c
  42.     clients/xman/tkfuncs.c
  43.     clients/xman/version.h
  44.     clients/xman/xman.help
  45.     clients/xman/xman.man
  46.  
  47. To apply these fixes, concatenate all three files and pipe them to patch -p0
  48. from the top of your X sources:
  49.  
  50.     %  cat fix5 fix6 fix7 | patch -p0
  51.  
  52.  
  53. The following is fix7 (you will also need fix5 and fix6):
  54.  
  55.  
  56.  
  57. *** /tmp/,RCSt1a17111    Fri Jan  6 18:56:24 1989
  58. --- clients/xman/CHANGES    Fri Jan  6 18:42:34 1989
  59. ***************
  60. *** 3,56 ****
  61.   Here is the list of changes to xman.  Unresolved bug fixes and
  62.   neat features are listed in the TODO file.
  63.   
  64.   ------------------------------------------------------------
  65. ! Version 3.0 (X11R2 Tape) -> Version 3.0.2
  66.   ------------------------------------------------------------
  67.   
  68. ! Additional Features:
  69.   
  70. ! 1) Startup time is now 3 times faster.
  71.   
  72. ! 2) Manual page searches now SCREAM, speed MUCH improved.
  73.   
  74. ! 3) -pagesize argument added and documented in manual page.
  75.   
  76. ! 4) List widget used for directory, may new features of directory
  77. !    a) vertical or horizontal orientation via the "verticalList" resource
  78. !       vertical is now the default.
  79. !       e.g  xman*verticalList:        False
  80.   
  81. !     b) current manual page is highlighted in the directory listing.
  82. !     c) resizing the window now creates more columns in directory 
  83. !        (see bug fix #4).
  84. !     d) Pixmaps no longer created for each directory listing.
  85. !        you people with color workstations should like this one.
  86.   
  87. ! 5) Xman no longer uses the window widget, and it has been removed from
  88. !    the distribution.  If you want a copy send me e-mail.
  89.   
  90. ! Bug Fixes:
  91.   
  92. ! 1) The height of the directory items was wrong if a different
  93. !    font is used for the directory than for the manual pages.
  94.   
  95. ! 2) The topBox resource for the initial "Manual Browser" box now 
  96. !    can be specified.  This allows the geometry of this box to be 
  97. !    set with resources.
  98.   
  99. !    e.g xman*topBox.geometry:      =100x100+2+2
  100.   
  101. ! 3) Xman now handles the case of no help file correctly.
  102.   
  103. ! 4) Resizing the directory now causes the columns to fill in the new area.
  104. !    This causes more of the directory to be visable in wider windows, and
  105. !    resizing narrower does not lose information.
  106.   
  107.   
  108. ! Know bugs yet to be resolved:
  109.   
  110. ! 1) Resizing the man page causes the directory to grow too big.
  111. !    and the manpage to get real small. (1 pixel).
  112.       
  113.   ------------------------------------------------------------
  114.   Version 3.0.2 -> 3.0.3
  115. --- 3,94 ----
  116.   Here is the list of changes to xman.  Unresolved bug fixes and
  117.   neat features are listed in the TODO file.
  118.   
  119. + I have changed this in to reverse chronological order to make it
  120. + easier to read.
  121.   ------------------------------------------------------------
  122. ! Version 3.1  -> 3.1.1
  123.   ------------------------------------------------------------
  124.   
  125. ! Bug Fixes.
  126.   
  127. ! 1) Manual Pages now handle text properly if partially obscured.
  128.   
  129. ! 2) Manual Pages smaller than one screen do not cause xman to die.
  130.   
  131. ! 3) Command line arguments and resources work properly again.
  132.   
  133. ! 4) Scrollbars on man pages and directories are the same size by default.
  134.   
  135. ! 5) Better handling of the decision to boldify.
  136.   
  137. ! 6) Searching with multiple manual pages visable now works correctly.
  138.   
  139. ! 7) Resources are all in a structure, so that machines with the MSB set
  140. !    on pointers will do the right thing.  
  141. !    THANKS TO: Martin Streicher
  142.   
  143. ! 8) Default width, is no longer dependant on the width of the display,
  144. !    but is set with #define DEFAULT_WIDTH in defs.h.  Problems may still
  145. !    occur with displays that are not 75 dpi.
  146.   
  147. ! 9) Fixes to man.c (internal maual page finding functions)
  148. !    a) xman knows about "mano" by default now.
  149.   
  150. ! 10) Right button paging in manual pages works correctly on all machines.
  151.   
  152. ! 11) The box with the message "Would you like to save this formatted manpage"
  153. !     comes up correctly in the center of the manual page.
  154.   
  155. ! 12) Manual pages of the form foo.3x11.z show up as: foo(x11).
  156.   
  157. + 13) Reverse video works correctly.
  158.   
  159. ! 14) AproposFilter now uses "man -k" rather than "apropos"
  160. !     THANKS TO:  Arthur David Olson.
  161.   
  162. ! 15) When searching for manual pages, highlight now reflects current 
  163. !     manual page.
  164. ! FEATURES:
  165. ! 1) Overstrike is now supported.  
  166. !    THANKS TO: clyde@rutgers.edu
  167. ! 2) Addition to of "no default sections" option to mandesc file, read the
  168. !    latest man page for details.
  169. ! 3) Warning messages printed to manual page window as well as stdout.
  170. ! ------------------------------------------------------------
  171. ! Version 3.0.4 -> 3.1 (X11R3)
  172. ! ------------------------------------------------------------
  173. ! List widget is part of Xaw and removed from this directory.
  174. ! ------------------------------------------------------------
  175. ! Version 3.0.3 -> 3.0.4
  176. ! ------------------------------------------------------------
  177. ! Bug fixes.
  178. ! 1)  First directory now comes up with all entries when the default
  179. !     size is used.
  180. ! 2)  Command line syntax printed if an argument is not understood.
  181. ! 3)  manpage rewritten.
  182. ! 4)  Apropos no longer blows out with very long MANPATH's.
  183. ! 5)  Better handling of mandesc file.
  184. ! Features:
  185. ! 1) additional command line arguments (see manpage for details):
  186. !    a) -notopbox
  187. !    b) -bothshown
  188. !    c) -helpfile <filename>
  189.       
  190.   ------------------------------------------------------------
  191.   Version 3.0.2 -> 3.0.3
  192. ***************
  193. *** 86,121 ****
  194.   
  195.   10)     Left over highlight in menu have been fixed.
  196.   
  197.   ------------------------------------------------------------
  198. ! Version 3.0.3 -> 3.0.4
  199.   ------------------------------------------------------------
  200.   
  201. ! Bug fixes.
  202.   
  203. ! 1)  First directory now comes up with all entries when the default
  204. !     size is used.
  205.   
  206. ! 2)  Command line syntax printed if an argument is not understood.n 
  207.   
  208. ! 3)  manpage rewritten.
  209.   
  210. ! 4)  Apropos no longer blows out with very long MANPATH's.
  211.   
  212. ! 5)  Better handling of mandesc file.
  213.   
  214. ! Features:
  215.   
  216. ! 1) additional command line arguments (see manpage for details):
  217. !    a) -notopbox
  218. !    b) -bothshown
  219. !    c) -helpfile <filename>
  220.   
  221. ! ------------------------------------------------------------
  222. ! Version 3.0.4 -> 3.1 (X11R3)
  223. ! ------------------------------------------------------------
  224.   
  225. ! List widget is part of Xaw and removed from this directory.
  226.   
  227.   
  228.                           Chris D. Peterson     
  229.                           Project Athena     
  230. --- 124,180 ----
  231.   
  232.   10)     Left over highlight in menu have been fixed.
  233.   
  234.   ------------------------------------------------------------
  235. ! Version 3.0 (X11R2 Tape) -> Version 3.0.2
  236.   ------------------------------------------------------------
  237.   
  238. ! Additional Features:
  239.   
  240. ! 1) Startup time is now 3 times faster.
  241.   
  242. ! 2) Manual page searches now SCREAM, speed MUCH improved.
  243.   
  244. ! 3) -pagesize argument added and documented in manual page.
  245.   
  246. ! 4) List widget used for directory, may new features of directory
  247. !    a) vertical or horizontal orientation via the "verticalList" resource
  248. !       vertical is now the default.
  249. !       e.g  xman*verticalList:        False
  250.   
  251. !     b) current manual page is highlighted in the directory listing.
  252. !     c) resizing the window now creates more columns in directory 
  253. !        (see bug fix #4).
  254. !     d) Pixmaps no longer created for each directory listing.
  255. !        you people with color workstations should like this one.
  256.   
  257. ! 5) Xman no longer uses the window widget, and it has been removed from
  258. !    the distribution.  If you want a copy send me e-mail.
  259.   
  260. ! Bug Fixes:
  261.   
  262. ! 1) The height of the directory items was wrong if a different
  263. !    font is used for the directory than for the manual pages.
  264.   
  265. ! 2) The topBox resource for the initial "Manual Browser" box now 
  266. !    can be specified.  This allows the geometry of this box to be 
  267. !    set with resources.
  268.   
  269. +    e.g xman*topBox.geometry:      =100x100+2+2
  270. + 3) Xman now handles the case of no help file correctly.
  271. + 4) Resizing the directory now causes the columns to fill in the new area.
  272. +    This causes more of the directory to be visable in wider windows, and
  273. +    resizing narrower does not lose information.
  274. + Know bugs yet to be resolved:
  275. + 1) Resizing the man page causes the directory to grow too big.
  276. +    and the manpage to get real small. (1 pixel).
  277. + ------------------------------------------------------------
  278.   
  279.                           Chris D. Peterson     
  280.                           Project Athena     
  281. *** /tmp/,RCSt1a17125    Fri Jan  6 18:56:26 1989
  282. --- clients/xman/README    Fri Jan  6 18:42:35 1989
  283. ***************
  284. *** 7,14 ****
  285.   /*
  286.    * xman - X window system manual page display program.
  287.    *
  288. !  * $XConsortium: README,v 1.3 88/10/07 17:25:10 jim Exp $
  289. !  * $Athena: README,v 3.4 88/08/31 21:14:20 kit Locked $
  290.    *
  291.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  292.    *
  293. --- 7,14 ----
  294.   /*
  295.    * xman - X window system manual page display program.
  296.    *
  297. !  * $XConsortium: README,v 1.4 89/01/06 18:42:34 kit Exp $
  298. !  * $Athena: README,v 4.3 88/12/19 13:49:06 kit Exp $
  299.    *
  300.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  301.    *
  302. ***************
  303. *** 52,58 ****
  304.   pain.  Oh yes, I also came up with what I think is a useful tool for all
  305.   users who wish to browse the manual pages.  
  306.   
  307. !     The ScrollByLine widget, while it looked like a good idea at t
  308.   the time, is really a hack and for widget examples please use the widget
  309.   set that came on the X tape, as the ScrollByLine Wiget was written about
  310.   three months and many Xtk intrinsic revisions ago.  It still works for
  311. --- 52,58 ----
  312.   pain.  Oh yes, I also came up with what I think is a useful tool for all
  313.   users who wish to browse the manual pages.  
  314.   
  315. !     The ScrollByLine widget, while it looked like a good idea at
  316.   the time, is really a hack and for widget examples please use the widget
  317.   set that came on the X tape, as the ScrollByLine Wiget was written about
  318.   three months and many Xtk intrinsic revisions ago.  It still works for
  319. ***************
  320. *** 83,96 ****
  321.   both the naive user and the experience unix hacker in mind.  Thus Xman
  322.   is:
  323.   
  324. ! 1) Easy to use, start it up, and click the help button to start.
  325. ! 2) Uses the same default key bindings as other Xtk applications (xmh, xmore).
  326. ! 3) Conserves Screen space, and is usable even when resized fairly small.
  327. ! 4) Readily reconfigurable, this allows the experienced user to remove most
  328. !    information that is not necessary from his xman display.
  329. ! 5) Fast - once it has started up it has all the information in 
  330. !           memory and can find and display formatted manual pages quite
  331. !           quickly.
  332.   
  333.       Changes from version 3.0 (Distributed with X11R2) are in the      |
  334.   file CHANGES. A list of bugs, and nice features is in the file TODO.    |
  335. --- 83,98 ----
  336.   both the naive user and the experience unix hacker in mind.  Thus Xman
  337.   is:
  338.   
  339. ! 1) Easy to use            Start it up, and click the help button 
  340. !                 to start.
  341. ! 2) More or less Standard    Uses the same default key bindings as 
  342. !                 other Xtk applications (xmh, xmore).
  343. ! 3) Conserves Screen space    Xman is usable even when resized fairly small.
  344. ! 4) Readily reconfigurable    Xman allows the experienced user to 
  345. !                 personalize the interface (somewhat :-)
  346. ! 5) Fast             Once it has started up it has all the 
  347. !                 information in memory and can find and
  348. !                 display formatted manual pages quite quickly.
  349.   
  350.       Changes from version 3.0 (Distributed with X11R2) are in the      |
  351.   file CHANGES. A list of bugs, and nice features is in the file TODO.    |
  352. *** /tmp/,RCSt1a17142    Fri Jan  6 18:56:31 1989
  353. --- clients/xman/TODO    Fri Jan  6 18:42:36 1989
  354. ***************
  355. *** 20,30 ****
  356.      How about a "print this manpage" command that would confirm the
  357.      printer choice and go do a psroff -man? 
  358.   
  359. !    One more thing.  It would be nice if "help" told you about the
  360.      Xresources used by xman (like xman*topBox.geometry) ...
  361.   
  362.      show message when formatting manpage.
  363.   
  364.      Implement searches within manpages.
  365.   
  366.      Redo menus.
  367. --- 20,32 ----
  368.      How about a "print this manpage" command that would confirm the
  369.      printer choice and go do a psroff -man? 
  370.   
  371. !    It would be nice if "help" told you about the
  372.      Xresources used by xman (like xman*topBox.geometry) ...
  373.   
  374.      show message when formatting manpage.
  375.   
  376. +    Handle Compressed manual pages, by page and by directory.
  377.      Implement searches within manpages.
  378.   
  379.      Redo menus.
  380. ***************
  381. *** 38,40 ****
  382. --- 40,44 ----
  383.      on to select one of those pages without having to switch sections and
  384.      then pick the manpage.
  385.      
  386. + ** This needs to be added to the Athena List Widget.
  387. *** /tmp/,RCSt1a17158    Fri Jan  6 18:56:37 1989
  388. --- clients/xman/defs.h    Fri Jan  6 18:41:57 1989
  389. ***************
  390. *** 1,8 ****
  391.   /*
  392.    * xman - X window system manual page display program.
  393.    *
  394. !  * $XConsortium: defs.h,v 1.6 88/10/20 19:03:47 jim Exp $
  395. !  * $Athena: defs.h,v 4.0 88/08/31 22:11:42 kit Exp $
  396.    *
  397.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  398.    *
  399. --- 1,8 ----
  400.   /*
  401.    * xman - X window system manual page display program.
  402.    *
  403. !  * $XConsortium: defs.h,v 1.7 89/01/06 18:41:55 kit Exp $
  404. !  * $Athena: defs.h,v 4.8 89/01/06 15:56:19 kit Exp $
  405.    *
  406.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  407.    *
  408. ***************
  409. *** 73,85 ****
  410.   
  411.   #define INIT_SEARCH_STRING "xman"     /* Intial search string. */
  412.   #define SEARCH_STRING_LENGTH 30
  413.   /*
  414.    * The command filters for the manual and apropos searches.
  415.    */
  416.   
  417. ! #define APROPOSCOMMAND "apropos -M"
  418. ! #define APROPOSFILTER "pr -h Apropos"
  419.   #define MANUALCOMMAND "man -M"
  420.   #ifdef macII
  421.   #define FORMAT "pcat"    /* The format command. */
  422. --- 73,84 ----
  423.   
  424.   #define INIT_SEARCH_STRING "xman"     /* Intial search string. */
  425.   #define SEARCH_STRING_LENGTH 30
  426. ! #define NO_SECTION_DEFAULTS ("no default sections")
  427.   /*
  428.    * The command filters for the manual and apropos searches.
  429.    */
  430.   
  431. ! #define APROPOSFILTER ("man -M %s -k %s | pr -h Apropos > %s")
  432.   #define MANUALCOMMAND "man -M"
  433.   #ifdef macII
  434.   #define FORMAT "pcat"    /* The format command. */
  435. ***************
  436. *** 89,103 ****
  437.   
  438.   #define CANCEL "Cancel"
  439.   
  440. ! #define MAXSECT 25        /* The maximum number of sections. */
  441. ! #define FIXEDSECT 11        /* The number of predefined sections.
  442. !                    0 - 8 and n, and l = 11. */
  443.   #define MAXENTRY 800        /* The maximum number of entries in one 
  444. !                    section. */
  445.   #define NLINES  66        /* This is the number of lines to wait until
  446.                      we boldify the line again, this allows 
  447.                      me to bold the first line of each page.*/
  448.   
  449.   
  450.   #define LMAN 3            /* Name and length of the man and cat dirs. */
  451.   #define MAN "man"
  452. --- 88,109 ----
  453.   
  454.   #define CANCEL "Cancel"
  455.   
  456. ! #define DEFAULT_WIDTH 500    /* The default width of xman. */
  457. ! #define MAXSECT 62        /* The maximum number of sections.
  458. !                    one for each of (1-9) & (a-z) & (A-Z) */
  459. ! #ifdef sun
  460. ! #define MAXENTRY 2000        /* The maximum number of entries in one 
  461. !                    section, on a sun. */
  462. ! #else
  463.   #define MAXENTRY 800        /* The maximum number of entries in one 
  464. !                    section, on other machines. */
  465. ! #endif
  466.   #define NLINES  66        /* This is the number of lines to wait until
  467.                      we boldify the line again, this allows 
  468.                      me to bold the first line of each page.*/
  469.   
  470. + #define INITIAL_DIR 0        /* The Initial Directory displayed. */
  471.   
  472.   #define LMAN 3            /* Name and length of the man and cat dirs. */
  473.   #define MAN "man"
  474. ***************
  475. *** 165,173 ****
  476.   /* man.c */
  477.   
  478.   int Man();
  479. - void MatchEntries(),AddStruct(),SortAndRemove();
  480. - Boolean GetEntry();
  481. - void SetManNames();
  482.   char * StrAlloc();
  483.   
  484.   /* menu.c is self contained */
  485. --- 171,176 ----
  486. ***************
  487. *** 175,181 ****
  488.   /* misc.c */
  489.   
  490.   void PrintError(),PrintWarning(),KillManpage(), ChangeLabel();
  491. ! void RemovePixmaps(),PositionCenter(),AddCursor();
  492.   FILE *FindFilename(),*Format(), *OpenEntryFile();
  493.   
  494.   /* pages.c */
  495. --- 178,184 ----
  496.   /* misc.c */
  497.   
  498.   void PrintError(),PrintWarning(),KillManpage(), ChangeLabel();
  499. ! void RemovePixmaps(),PositionCenter(),AddCursor(),ParseEntry();
  500.   FILE *FindFilename(),*Format(), *OpenEntryFile();
  501.   
  502.   /* pages.c */
  503. *** /tmp/,RCSt1a17166    Fri Jan  6 18:56:39 1989
  504. --- clients/xman/globals.c    Fri Jan  6 18:41:58 1989
  505. ***************
  506. *** 1,7 ****
  507.   /*
  508.    * xman - X window system manual page display program.
  509.    *
  510. !  * $XConsortium: globals.c,v 1.2 88/09/06 17:47:38 jim Exp $
  511.    *
  512.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  513.    *
  514. --- 1,7 ----
  515.   /*
  516.    * xman - X window system manual page display program.
  517.    *
  518. !  * $XConsortium: globals.c,v 1.3 89/01/06 18:41:57 kit Exp $
  519.    *
  520.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  521.    *
  522. ***************
  523. *** 20,45 ****
  524.    */
  525.   
  526.   #if ( !defined(lint) && !defined(SABER))
  527. !   static char rcs_version[] = "$Athena: globals.c,v 4.0 88/08/31 22:11:49 kit Exp $";
  528.   #endif
  529.   
  530.   #include "man.h"
  531.   
  532. ! /* Resource manager sets these. */
  533.   
  534. ! XmanFonts fonts;        /* The fonts used for the man pages. */
  535. ! XmanCursors cursors;        /* The cursors for xman. */
  536. ! Boolean both_shown_initial;    /* The initial state of the manual pages
  537. !                    show two screens or only one. */
  538. ! Boolean top_box_active;            /* Put up the Top Box. */
  539. ! int directory_height;            /* The default height of directory in 
  540. !                    both_shown mode. */
  541. ! char * help_file;        /* The name of the help file. */
  542.   
  543.   Widget help_widget;        /* The help widget. */
  544.   
  545. - /* bookkeeping global variables. */
  546.   int default_height,default_width; /* Approximately the default with and
  547.                           height, of the manpage when shown,
  548.                           the the top level manual page 
  549. --- 20,36 ----
  550.    */
  551.   
  552.   #if ( !defined(lint) && !defined(SABER))
  553. !   static char rcs_version[] = "$Athena: globals.c,v 4.5 88/12/19 13:46:53 kit Exp $";
  554.   #endif
  555.   
  556.   #include "man.h"
  557.   
  558. ! Xman_Resources resources;    /* Resource manager sets these. */
  559.   
  560. ! /* bookkeeping global variables. */
  561.   
  562.   Widget help_widget;        /* The help widget. */
  563.   
  564.   int default_height,default_width; /* Approximately the default with and
  565.                           height, of the manpage when shown,
  566.                           the the top level manual page 
  567. ***************
  568. *** 51,53 ****
  569. --- 42,45 ----
  570.   int man_pages_shown;        /* The current number of manual
  571.                      pages being shown, if 0 we exit. */
  572.   
  573. + Widget initial_widget;        /* The initial widget, never realized. */
  574. *** /tmp/,RCSt1a17176    Fri Jan  6 18:56:41 1989
  575. --- clients/xman/globals.h    Fri Jan  6 18:41:59 1989
  576. ***************
  577. *** 1,8 ****
  578.   /*
  579.    * xman - X window system manual page display program.
  580.    *
  581. !  * $XConsortium: globals.h,v 1.2 88/09/06 17:47:41 jim Exp $
  582. !  * $Athena: globals.h,v 4.0 88/08/31 22:11:54 kit Exp $
  583.    *
  584.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  585.    *
  586. --- 1,8 ----
  587.   /*
  588.    * xman - X window system manual page display program.
  589.    *
  590. !  * $XConsortium: globals.h,v 1.3 89/01/06 18:41:58 kit Exp $
  591. !  * $Athena: globals.h,v 4.5 88/12/19 13:46:58 kit Exp $
  592.    *
  593.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  594.    *
  595. ***************
  596. *** 22,42 ****
  597.   
  598.   #include "man.h"
  599.   
  600. ! /* Resource manager sets these. */
  601.   
  602. ! extern XmanFonts fonts;            /* The fonts used for the man pages. */
  603. ! extern XmanCursors cursors;        /* The cursors for xman. */
  604. ! extern Boolean both_shown_initial;      /* The initial state of the manual 
  605. !                          pages show two screens or only one. */
  606. ! extern Boolean top_box_active;            /* Put up the Top Box. */
  607. ! extern int directory_height;            /* The default height of directory in 
  608. !                             both_shown mode. */
  609. ! extern char * help_file;        /* The name of the help file. */
  610.   
  611.   extern Widget help_widget;        /* The help widget. */
  612.   
  613. - /* bookkeeping global variables. */
  614.   extern int default_height,default_width; /* Approximately the default with and
  615.                           height, of the manpage when shown,
  616.                           the the top level manual page 
  617. --- 22,33 ----
  618.   
  619.   #include "man.h"
  620.   
  621. ! extern Xman_Resources resources;    /* Resource manager sets these. */
  622.   
  623. ! /* bookkeeping global variables. */
  624.   
  625.   extern Widget help_widget;        /* The help widget. */
  626.   
  627.   extern int default_height,default_width; /* Approximately the default with and
  628.                           height, of the manpage when shown,
  629.                           the the top level manual page 
  630. ***************
  631. *** 47,50 ****
  632.   extern Manual manual[MAXSECT];        /* The manual structure. */
  633.   extern int sections;            /* The number of manual sections. */
  634.   
  635. --- 38,41 ----
  636.   extern Manual manual[MAXSECT];        /* The manual structure. */
  637.   extern int sections;            /* The number of manual sections. */
  638.   
  639. ! extern Widget initial_widget;          /* The initial widget, never realized. */
  640. *** /tmp/,RCSt1a17190    Fri Jan  6 18:56:45 1989
  641. --- clients/xman/help.c    Fri Jan  6 18:42:04 1989
  642. ***************
  643. *** 1,7 ****
  644.   /*
  645.    * xman - X window system manual page display program.
  646.    *
  647. !  * $XConsortium: help.c,v 1.2 88/09/06 17:48:01 jim Exp $
  648.    *
  649.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  650.    *
  651. --- 1,7 ----
  652.   /*
  653.    * xman - X window system manual page display program.
  654.    *
  655. !  * $XConsortium: help.c,v 1.3 89/01/06 18:42:03 kit Exp $
  656.    *
  657.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  658.    *
  659. ***************
  660. *** 55,61 ****
  661.   
  662.     XtManageChild( man_globals->manpagewidgets.manpage );
  663.     XtRealizeWidget(  help_widget );
  664. !   AddCursor( help_widget, cursors.manpage);
  665.   
  666.     return(TRUE);
  667.   }
  668. --- 55,61 ----
  669.   
  670.     XtManageChild( man_globals->manpagewidgets.manpage );
  671.     XtRealizeWidget(  help_widget );
  672. !   AddCursor( help_widget, resources.cursors.manpage);
  673.   
  674.     return(TRUE);
  675.   }
  676. ***************
  677. *** 85,92 ****
  678.   {
  679.     FILE * help_file_ptr;
  680.   
  681. !   if( (help_file_ptr = fopen(help_file, "r")) == NULL ) {
  682. !     PrintWarning("Could not open help file, NO HELP WILL BE AVALIABLE.");
  683.       return(FALSE);
  684.     }
  685.     InitManpage(man_globals, man_globals->manpagewidgets.manpage, help_file_ptr);
  686. --- 85,93 ----
  687.   {
  688.     FILE * help_file_ptr;
  689.   
  690. !   if( (help_file_ptr = fopen(resources.help_file, "r")) == NULL ) {
  691. !     PrintWarning(man_globals,
  692. !          "Could not open help file, NO HELP WILL BE AVALIABLE.");
  693.       return(FALSE);
  694.     }
  695.     InitManpage(man_globals, man_globals->manpagewidgets.manpage, help_file_ptr);
  696. *** /tmp/,RCSt1a17213    Fri Jan  6 18:56:52 1989
  697. --- clients/xman/man.h    Fri Jan  6 18:42:19 1989
  698. ***************
  699. *** 1,8 ****
  700.   /*
  701.    * xman - X window system manual page display program.
  702.    *
  703. !  * $XConsortium: man.h,v 1.2 88/09/06 17:48:12 jim Exp $
  704. !  * $Athena: man.h,v 4.0 88/08/31 22:12:43 kit Exp $
  705.    *
  706.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  707.    *
  708. --- 1,8 ----
  709.   /*
  710.    * xman - X window system manual page display program.
  711.    *
  712. !  * $XConsortium: man.h,v 1.3 89/01/06 18:42:18 kit Exp $
  713. !  * $Athena: man.h,v 4.6 89/01/06 12:17:38 kit Exp $
  714.    *
  715.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  716.    *
  717. ***************
  718. *** 80,109 ****
  719.       directory,            /* The widget in which all directories will
  720.                      appear. */
  721.       box[MAXSECT];        /* The boxes containing the sections. */
  722. -   Boolean created_box[MAXSECT];    /* Has this box been created yet?. */
  723.   } ManPageWidgets;
  724.   
  725.   /*
  726. !  * How we store each entry such as cat.1, sh.1 etc.
  727.    */
  728.   
  729. - struct entry {
  730. -   char *label;            /* The filename of the entry. */
  731. -   char *path;            /* The path for this entry. */
  732. -  /* So that't why this is a structure, good thinking Barry. */
  733. - };
  734. - /*
  735. -  * the manual sections and entries
  736. -  */
  737.   typedef struct tManual {
  738.     char * blabel;        /* The button label. */
  739. !   char * sect;            /* the section man directory. */
  740. !   struct entry *entries;    /* the individual man page file names and paths*/
  741.     int nentries;            /* how many */
  742. -   int longest;            /* The length (in pixels) of the longest
  743. -                                    entry. */
  744. -   int ncols,nrows;        /* The number of rows and columns */
  745.   } Manual;
  746.   
  747.   /* 
  748. --- 80,95 ----
  749.       directory,            /* The widget in which all directories will
  750.                      appear. */
  751.       box[MAXSECT];        /* The boxes containing the sections. */
  752.   } ManPageWidgets;
  753.   
  754.   /*
  755. !  * The manual sections and entries
  756.    */
  757.   
  758.   typedef struct tManual {
  759.     char * blabel;        /* The button label. */
  760. !   char ** entries;        /* the individual man page file names. */
  761.     int nentries;            /* how many */
  762.   } Manual;
  763.   
  764.   /* 
  765. ***************
  766. *** 133,139 ****
  767.       put_up_manpage,        /* The button that puts up the manpage. */
  768.       put_up_directory,        /* The button that puts up the directory. */
  769.       text_widget;        /* text widget containing search string. */
  770. !   char * search_string;        /* The search string. */
  771.     char manpage_title[80];    /* The label to use for the current manpage. */
  772.     char filename[80];        /* the name of the file that we are
  773.                      currently looking at.*/
  774. --- 119,125 ----
  775.       put_up_manpage,        /* The button that puts up the manpage. */
  776.       put_up_directory,        /* The button that puts up the directory. */
  777.       text_widget;        /* text widget containing search string. */
  778. !   char search_string[SEARCH_STRING_LENGTH];    /* The search string. */
  779.     char manpage_title[80];    /* The label to use for the current manpage. */
  780.     char filename[80];        /* the name of the file that we are
  781.                      currently looking at.*/
  782. ***************
  783. *** 151,153 ****
  784. --- 137,153 ----
  785.                      this manpage. */
  786.   
  787.   } ManpageGlobals;
  788. + /* Resource manager sets these. */
  789. + typedef struct _Xman_Resources {
  790. +   XmanFonts fonts;        /* The fonts used for the man pages. */
  791. +   XmanCursors cursors;        /* The cursors for xman. */
  792. +   Boolean both_shown_initial;    /* The initial state of the manual pages
  793. +                    show two screens or only one. */
  794. +   Boolean top_box_active;            /* Put up the Top Box. */
  795. +   int directory_height;            /* The default height of directory in 
  796. +                    both_shown mode. */
  797. +   char * help_file;        /* The name of the help file. */
  798. + } Xman_Resources;
  799. *** /tmp/,RCSt1a17227    Fri Jan  6 18:56:57 1989
  800. --- clients/xman/menu.c    Fri Jan  6 18:42:21 1989
  801. ***************
  802. *** 1,7 ****
  803.   /*
  804.    * xman - X window system manual page display program.
  805.    *
  806. !  * $XConsortium: menu.c,v 1.2 88/09/04 20:27:31 swick Exp $
  807.    * $oHeader: menu.c,v 4.0 88/08/31 22:12:49 kit Exp $
  808.    *
  809.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  810. --- 1,7 ----
  811.   /*
  812.    * xman - X window system manual page display program.
  813.    *
  814. !  * $XConsortium: menu.c,v 1.3 89/01/06 18:42:20 kit Exp $
  815.    * $oHeader: menu.c,v 4.0 88/08/31 22:12:49 kit Exp $
  816.    *
  817.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  818. ***************
  819. *** 21,27 ****
  820.    */
  821.   
  822.   #if ( !defined(lint) && !defined(SABER))
  823. !   static char rcs_version[] = "$Athena: menu.c,v 4.0 88/08/31 22:12:49 kit Exp $";
  824.   #endif
  825.   
  826.   /* std headers */
  827. --- 21,27 ----
  828.    */
  829.   
  830.   #if ( !defined(lint) && !defined(SABER))
  831. !   static char rcs_version[] = "$Athena: menu.c,v 4.2 88/12/19 13:47:51 kit Exp $";
  832.   #endif
  833.   
  834.   /* std headers */
  835. *** /tmp/,RCSt1a17241    Fri Jan  6 18:57:00 1989
  836. --- clients/xman/pages.c    Fri Jan  6 18:42:27 1989
  837. ***************
  838. *** 1,7 ****
  839.   /*
  840.    * xman - X window system manual page display program.
  841.    *
  842. !  * $XConsortium: pages.c,v 1.2 88/09/06 17:48:20 jim Exp $
  843.    *
  844.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  845.    *
  846. --- 1,7 ----
  847.   /*
  848.    * xman - X window system manual page display program.
  849.    *
  850. !  * $XConsortium: pages.c,v 1.3 89/01/06 18:42:26 kit Exp $
  851.    *
  852.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  853.    *
  854. ***************
  855. *** 20,26 ****
  856.    */
  857.   
  858.   #if ( !defined(lint) && !defined(SABER))
  859. !   static char rcs_version[] = "$Athena: pages.c,v 4.0 88/08/31 22:13:10 kit Exp $";
  860.   #endif
  861.   
  862.   #include <ctype.h>
  863. --- 20,26 ----
  864.    */
  865.   
  866.   #if ( !defined(lint) && !defined(SABER))
  867. !   static char rcs_version[] = "$Athena: pages.c,v 4.5 88/12/19 13:48:09 kit Exp $";
  868.   #endif
  869.   
  870.   #include <ctype.h>
  871. ***************
  872. *** 179,184 ****
  873. --- 179,186 ----
  874.    *    Returns: none.
  875.    */
  876.   
  877. + /* ARGSUSED */
  878.   void
  879.   PrintManpage(w,struct_pointer,data)
  880.   Widget w;
  881. ***************
  882. *** 237,258 ****
  883.    * export the font height.
  884.    */
  885.   
  886. !   height = (fonts.normal->max_bounds.ascent + 
  887. !            fonts.normal->max_bounds.descent); 
  888.   
  889.     bold_gc = XCreateGC(disp,window,0,NULL);
  890.     XSetForeground(disp,bold_gc,(unsigned long) fgcolor);
  891. !   XSetFont(disp,bold_gc,fonts.bold->fid);
  892.   
  893.     normal_gc = XCreateGC(disp,window,0,NULL);
  894.     XSetForeground(disp,normal_gc,(unsigned long) fgcolor);
  895. !   XSetFont(disp,normal_gc,fonts.normal->fid);
  896.   
  897.     italic_gc = XCreateGC(disp,window,0,NULL);
  898.     XSetForeground(disp,italic_gc,(unsigned long) fgcolor);
  899. !   XSetFont(disp,italic_gc,fonts.italic->fid);
  900.   
  901. !   width =  XTextWidth(fonts.normal,"        ",8); /* Width of a tab stop. */
  902.   
  903.   /*
  904.    * Because XDrawString uses the bottom of the text as a position
  905. --- 239,261 ----
  906.    * export the font height.
  907.    */
  908.   
  909. !   height = (resources.fonts.normal->max_bounds.ascent + 
  910. !            resources.fonts.normal->max_bounds.descent); 
  911.   
  912.     bold_gc = XCreateGC(disp,window,0,NULL);
  913.     XSetForeground(disp,bold_gc,(unsigned long) fgcolor);
  914. !   XSetFont(disp,bold_gc,resources.fonts.bold->fid);
  915.   
  916.     normal_gc = XCreateGC(disp,window,0,NULL);
  917.     XSetForeground(disp,normal_gc,(unsigned long) fgcolor);
  918. !   XSetFont(disp,normal_gc,resources.fonts.normal->fid);
  919.   
  920.     italic_gc = XCreateGC(disp,window,0,NULL);
  921.     XSetForeground(disp,italic_gc,(unsigned long) fgcolor);
  922. !   XSetFont(disp,italic_gc,resources.fonts.italic->fid);
  923.   
  924. !  /* Width of a tab stop. */
  925. !   width =  XTextWidth(resources.fonts.normal,"        ",8);
  926.   
  927.   /*
  928.    * Because XDrawString uses the bottom of the text as a position
  929. ***************
  930. *** 260,266 ****
  931.    * to the ScollByLine position reference.
  932.    */
  933.   
  934. !   y_loc = scroll_info->location + fonts.normal->max_bounds.ascent;
  935.   
  936.   /*
  937.    * Ok, here's the more than mildly heuristic man page formatter.
  938. --- 263,269 ----
  939.    * to the ScollByLine position reference.
  940.    */
  941.   
  942. !   y_loc = scroll_info->location + resources.fonts.normal->max_bounds.ascent;
  943.   
  944.   /*
  945.    * Ok, here's the more than mildly heuristic man page formatter.
  946. ***************
  947. *** 334,340 ****
  948.       XDrawString(disp,window,normal_gc,col,y_loc,buf,strlen(buf));
  949.         bufp = buf; 
  950.         italicflag = 0;
  951. !       cur_pos = XTextWidth(fonts.normal,buf,strlen(buf)) + col;
  952.         col = cur_pos - (cur_pos % width) + width;
  953.         break;
  954.   
  955. --- 337,343 ----
  956.       XDrawString(disp,window,normal_gc,col,y_loc,buf,strlen(buf));
  957.         bufp = buf; 
  958.         italicflag = 0;
  959. !       cur_pos = XTextWidth(resources.fonts.normal,buf,strlen(buf)) + col;
  960.         col = cur_pos - (cur_pos % width) + width;
  961.         break;
  962.   
  963. ***************
  964. *** 342,347 ****
  965. --- 345,406 ----
  966.         c++;            /* should always be esc-x */
  967.         break;
  968.   
  969. + /* 
  970. +  * Overstrike code supplied by: cs.utexas.edu!ut-emx!clyde@rutgers.edu 
  971. +  * Since my manual pages do not have overstrike I couldn't test this.
  972. +  */
  973. +     case BACKSPACE:        /* Backspacing for nroff bolding */
  974. +       if (c[-1] == c[1] && c[1] != BACKSPACE) {    /* overstriking one char */
  975. +     *--bufp = '\0';        /* Zap 1st instance of char to bolden */
  976. +     if (bufp > &buf[0]) {
  977. +       if (italicflag) {
  978. +         XDrawString(disp,window,italic_gc,col,y_loc,buf,strlen(buf));
  979. +         col += XTextWidth(resources.fonts.italic,buf,strlen(buf));
  980. +       }
  981. +       else {
  982. +         XDrawString(disp,window,normal_gc,col,y_loc,buf,strlen(buf));
  983. +         col += XTextWidth(resources.fonts.normal,buf,strlen(buf));
  984. +       }
  985. +       bufp = buf;
  986. +     }
  987. +     /*
  988. +      * It is painful writing one bold char at a time but
  989. +      * it is the only safe way to do it.  We trust that the library
  990. +      * buffers these one-char draw requests and sends one large
  991. +      * request packet.
  992. +      */
  993. +     *bufp = c[1];
  994. +     XDrawString(disp,window,bold_gc,col,y_loc,bufp,1);
  995. +     col += XTextWidth(resources.fonts.bold,bufp,1);
  996. +     *bufp = '\0';
  997. +     first = FALSE;
  998. +     /*
  999. +      *     Nroff bolding looks like:
  1000. +      *              C\bC\bC\bCN...
  1001. +      * c points to ----^      ^
  1002. +      * it needs to point to --^
  1003. +      */
  1004. +     while (*c == BACKSPACE && c[-1] == c[1])
  1005. +       c += 2;
  1006. +     c--;        /* Back up to previous char */
  1007. +       }
  1008. +       else {
  1009. +     if ((c[-1] == 'o' && c[1] == '+')          /* Nroff bullet */
  1010. +         || (c[-1] == '+' && c[1] == 'o')) {       /* Nroff bullet */
  1011. +       /* I would prefer to put a 'bullet' char here */
  1012. +       *bufp++ = 'o';
  1013. +       c++;
  1014. +     }
  1015. +     else {        /* 'real' backspace - back up output ptr */
  1016. +       bufp--;
  1017. +     }
  1018. +       }
  1019. +       break;
  1020. + /* End of contributed overstrike code. */
  1021. +   
  1022.      case '_':            /* look for underlining [italicize] */
  1023.         c++;
  1024.         if(*c != BACKSPACE) {
  1025. ***************
  1026. *** 354,360 ****
  1027.         *bufp = '\0';
  1028.         XDrawString(disp,window,normal_gc,col,y_loc,
  1029.                 buf,strlen(buf));
  1030. !       col += XTextWidth(fonts.normal,buf,strlen(buf));
  1031.         bufp = buf;
  1032.         *bufp = '\0';
  1033.         italicflag = 1;
  1034. --- 413,419 ----
  1035.         *bufp = '\0';
  1036.         XDrawString(disp,window,normal_gc,col,y_loc,
  1037.                 buf,strlen(buf));
  1038. !       col += XTextWidth(resources.fonts.normal,buf,strlen(buf));
  1039.         bufp = buf;
  1040.         *bufp = '\0';
  1041.         italicflag = 1;
  1042. ***************
  1043. *** 368,374 ****
  1044.         if(italicflag) {            /* font change? */
  1045.       *bufp = '\0';
  1046.       XDrawString(disp,window,italic_gc,col,y_loc,buf,strlen(buf));
  1047. !     col += XTextWidth(fonts.italic,buf,strlen(buf));    
  1048.       bufp = buf;
  1049.       *bufp = '\0';
  1050.       italicflag = 0;
  1051. --- 427,433 ----
  1052.         if(italicflag) {            /* font change? */
  1053.       *bufp = '\0';
  1054.       XDrawString(disp,window,italic_gc,col,y_loc,buf,strlen(buf));
  1055. !     col += XTextWidth(resources.fonts.italic,buf,strlen(buf));    
  1056.       bufp = buf;
  1057.       *bufp = '\0';
  1058.       italicflag = 0;
  1059. ***************
  1060. *** 400,406 ****
  1061.   
  1062.     length = strlen(sp);
  1063.     for (sp_pointer = sp, count = 0; count < length; sp_pointer++,count++) 
  1064. !     if (islower(*sp_pointer))
  1065.         return(0);
  1066.     return(1);
  1067.   }
  1068. --- 459,465 ----
  1069.   
  1070.     length = strlen(sp);
  1071.     for (sp_pointer = sp, count = 0; count < length; sp_pointer++,count++) 
  1072. !     if ( !isupper(*sp_pointer) && !isspace(*sp_pointer) )
  1073.         return(0);
  1074.     return(1);
  1075.   }
  1076. *** /tmp/,RCSt1a17256    Fri Jan  6 18:57:04 1989
  1077. --- clients/xman/tkfuncs.c    Fri Jan  6 18:42:31 1989
  1078. ***************
  1079. *** 1,7 ****
  1080.   /*
  1081.    * xman - X window system manual page display program.
  1082.    *
  1083. !  * $XConsortium: tkfuncs.c,v 1.2 88/09/06 17:48:23 jim Exp $
  1084.    *
  1085.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  1086.    *
  1087. --- 1,7 ----
  1088.   /*
  1089.    * xman - X window system manual page display program.
  1090.    *
  1091. !  * $XConsortium: tkfuncs.c,v 1.3 89/01/06 18:42:30 kit Exp $
  1092.    *
  1093.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  1094.    *
  1095. ***************
  1096. *** 20,26 ****
  1097.    */
  1098.   
  1099.   #if ( !defined(lint) && !defined(SABER))
  1100. !   static char rcs_version[] = "$Athena: tkfuncs.c,v 4.0 88/08/31 22:13:27 kit Exp $";
  1101.   #endif
  1102.   
  1103.   #include <X11/X.h>
  1104. --- 20,26 ----
  1105.    */
  1106.   
  1107.   #if ( !defined(lint) && !defined(SABER))
  1108. !   static char rcs_version[] = "$Athena: tkfuncs.c,v 4.5 88/12/19 13:48:24 kit Exp $";
  1109.   #endif
  1110.   
  1111.   #include <X11/X.h>
  1112. ***************
  1113. *** 141,147 ****
  1114.                    also the parent of the lable.*/
  1115.     Widget w;
  1116.     XtGeometryResult answer;    /* result of geometery test. */
  1117. !   Cardinal awidth,aheight;    /* The height and width of the reply. */
  1118.     int width = 0;        /* The width of the biggest button */
  1119.     int i;
  1120.   
  1121. --- 141,147 ----
  1122.                    also the parent of the lable.*/
  1123.     Widget w;
  1124.     XtGeometryResult answer;    /* result of geometery test. */
  1125. !   Dimension awidth,aheight;    /* The height and width of the reply. */
  1126.     int width = 0;        /* The width of the biggest button */
  1127.     int i;
  1128.   
  1129. *** /tmp/,RCSt1a17261    Fri Jan  6 18:57:06 1989
  1130. --- clients/xman/version.h    Fri Jan  6 18:42:32 1989
  1131. ***************
  1132. *** 1,8 ****
  1133.   /*
  1134.    * xman - X window system manual page display program.
  1135.    *
  1136. !  * $XConsortium: version.h,v 1.2 88/09/06 17:48:28 jim Exp $
  1137. !  * $Athena: version.h,v 4.0 88/08/31 22:13:33 kit Exp $
  1138.    *
  1139.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  1140.    *
  1141. --- 1,8 ----
  1142.   /*
  1143.    * xman - X window system manual page display program.
  1144.    *
  1145. !  * $XConsortium: version.h,v 1.3 89/01/06 18:42:31 kit Exp $
  1146. !  * $Athena: version.h,v 4.5 88/12/19 13:48:30 kit Exp $
  1147.    *
  1148.    * Copyright 1987, 1988 Massachusetts Institute of Technology
  1149.    *
  1150. ***************
  1151. *** 20,24 ****
  1152.    * Created:   July 18, 1988 
  1153.    */
  1154.   
  1155. ! #define XMAN_VERSION "Xman_Version 3.1"
  1156.   
  1157. --- 20,24 ----
  1158.    * Created:   July 18, 1988 
  1159.    */
  1160.   
  1161. ! #define XMAN_VERSION "Xman_Version 3.1.1"
  1162.   
  1163. *** /tmp/,RCSt1a17267    Fri Jan  6 18:57:07 1989
  1164. --- clients/xman/xman.help    Fri Jan  6 18:42:38 1989
  1165. ***************
  1166. *** 2,16 ****
  1167.   XMAN is an X Window System manual browsing tool, built upon the XToolkit.
  1168.   
  1169.   
  1170. ! CREDITS:
  1171.   
  1172. !     Version 3.1
  1173.       Based Upon: Xman for X10 by Barry Shein - Boston Univ.
  1174.       Written By: Chris Peterson - MIT Project Athena.
  1175.       Copyright 1988 Massachusetts Institute of Technology 
  1176.   
  1177.   
  1178. ! GETTING STARTED:
  1179.   
  1180.     By default, XMAN starts by creating a small window that contains
  1181.   three "buttons" (places on which to click a mouse button).  Two of
  1182. --- 2,16 ----
  1183.   XMAN is an X Window System manual browsing tool, built upon the XToolkit.
  1184.   
  1185.   
  1186. ! CREDITS
  1187.   
  1188. !     Version 3.1.1
  1189.       Based Upon: Xman for X10 by Barry Shein - Boston Univ.
  1190.       Written By: Chris Peterson - MIT Project Athena.
  1191.       Copyright 1988 Massachusetts Institute of Technology 
  1192.   
  1193.   
  1194. ! GETTING STARTED
  1195.   
  1196.     By default, XMAN starts by creating a small window that contains
  1197.   three "buttons" (places on which to click a mouse button).  Two of
  1198. ***************
  1199. *** 31,37 ****
  1200.   the middle button returns you to the manual page previously on the
  1201.   screen.
  1202.   
  1203. ! SCROLLING TEXT:
  1204.   
  1205.     The scrollbars are similar to xterm, xmh, and xmore scrollbars;
  1206.   clicking the left or right mouse buttons with the pointer at the
  1207. --- 31,37 ----
  1208.   the middle button returns you to the manual page previously on the
  1209.   screen.
  1210.   
  1211. ! SCROLLING TEXT
  1212.   
  1213.     The scrollbars are similar to xterm, xmh, and xmore scrollbars;
  1214.   clicking the left or right mouse buttons with the pointer at the
  1215. ***************
  1216. *** 46,52 ****
  1217.   down or up one page, respectively.  You may also type 'f' or
  1218.   <space bar> to scroll down one page, and 'b' to scroll up one page.
  1219.   
  1220. ! RESIZING THINGS:
  1221.   
  1222.     You can resize any of the windows in xman with your favorite window
  1223.   manager, and xman will to the best it can to resize everything
  1224. --- 46,52 ----
  1225.   down or up one page, respectively.  You may also type 'f' or
  1226.   <space bar> to scroll down one page, and 'b' to scroll up one page.
  1227.   
  1228. ! RESIZING THINGS
  1229.   
  1230.     You can resize any of the windows in xman with your favorite window
  1231.   manager, and xman will to the best it can to resize everything
  1232. ***************
  1233. *** 60,71 ****
  1234.   the mouse button is released xman will move the pane boundry to the
  1235.   newly specified location.
  1236.   
  1237. ! FOR FURTHER INFORMATION:
  1238.   
  1239.   Information on customizing xman through resource and command line
  1240.   options can be found in the xman manpage.
  1241.   
  1242. ! SUMMARY OF BASIC ACTIONS:
  1243.   
  1244.   Any time:
  1245.   
  1246. --- 60,71 ----
  1247.   the mouse button is released xman will move the pane boundry to the
  1248.   newly specified location.
  1249.   
  1250. ! FOR FURTHER INFORMATION
  1251.   
  1252.   Information on customizing xman through resource and command line
  1253.   options can be found in the xman manpage.
  1254.   
  1255. ! SUMMARY OF BASIC ACTIONS
  1256.   
  1257.   Any time:
  1258.   
  1259. ***************
  1260. *** 90,96 ****
  1261.   CLICK RIGHT:            Move Up - more if pointer is near bottom
  1262.                       of window, less if at top.
  1263.   
  1264. ! EXTENDED COMMANDS:
  1265.   
  1266.     To reach the extended commands simply move the mouse over the label
  1267.   at the top of the manual page display window; this will activate the
  1268. --- 90,96 ----
  1269.   CLICK RIGHT:            Move Up - more if pointer is near bottom
  1270.                       of window, less if at top.
  1271.   
  1272. ! EXTENDED COMMANDS
  1273.   
  1274.     To reach the extended commands simply move the mouse over the label
  1275.   at the top of the manual page display window; this will activate the
  1276. *** /tmp/,RCSt1a17274    Fri Jan  6 18:57:08 1989
  1277. --- clients/xman/xman.man    Fri Jan  6 18:42:39 1989
  1278. ***************
  1279. *** 1,6 ****
  1280.   .TH XMAN 1 "24 October 1988" "X Version 11"
  1281.   .SH NAME
  1282. ! xman - display manual pages
  1283.   .SH SYNOPSIS
  1284.   .B xman
  1285.   [-options ...]
  1286. --- 1,6 ----
  1287.   .TH XMAN 1 "24 October 1988" "X Version 11"
  1288.   .SH NAME
  1289. ! xman - Manual page display program for the X Window System.
  1290.   .SH SYNOPSIS
  1291.   .B xman
  1292.   [-options ...]
  1293. ***************
  1294. *** 18,50 ****
  1295.   help information.  The rest of this manual page will discuss
  1296.   customization of \fIxman\fP.
  1297.   .PP
  1298.   .I Xman
  1299. ! accomodates new manual sections by the use of the environment variable
  1300. ! MANPATH and by directory description files named \fImandesc\fP.
  1301. ! .I Xman
  1302. ! will search each directory specified in the environment variable
  1303. ! MANPATH for the following subdirectories only: man0, man1, ..., man8,
  1304. ! manl (local), and mann (new).
  1305. ! (It usually ignores the
  1306. ! information in man0 unless there is a \fImandesc\fP file that specifically
  1307. ! tells it not to.)
  1308. ! These subdirectories each represent
  1309. ! a separate section of the manual.  These subdirectories should contain 
  1310. ! man pages.  Any manual section can be renamed by an optional
  1311. ! \fImandesc\fP file.
  1312.   .PP
  1313. ! As an example, if MANPATH was set to \fI/usr/man:/usr/sipb/man\fP
  1314. ! and there was no \fImandesc\fP file in /usr/man, \fIxman\fP
  1315. ! would put all of the files in the default section names
  1316. ! (e.g. manl gets a section name of local).
  1317. ! But if there were a \fImandesc\fP file in
  1318. ! /usr/sipb/man which contained the line \fIlSIPB Programs\fP,
  1319. ! then \fIxman\fP would put all files in the
  1320. ! manl subdirectory in a new section
  1321. ! called ``SIPB Programs''.  \fIXman\fP will search the \fImandesc\fP file until
  1322. ! there are no more lines of information.  This flexibility is ideal
  1323. ! for courses that have their own manual pages. 
  1324.   .PP
  1325.   .I Xman
  1326.   creates temporary files in /tmp for all unformatted man pages and all apropos
  1327.   searches.
  1328. --- 18,130 ----
  1329.   help information.  The rest of this manual page will discuss
  1330.   customization of \fIxman\fP.
  1331.   .PP
  1332. + .sh "CUSTOMIZING XMAN"
  1333. + .PP
  1334.   .I Xman
  1335. ! allows customization of both the directories to be searched for manual pages,
  1336. ! and the name that each directory will map to in the \fIManual Sections\fP
  1337. ! menu.  Xman determines which direcories it will
  1338. ! search by reading the \fIMANPATH\fP environment variable.  This enviroment
  1339. ! is expected to be a colon seperated list of directories for xman to search.
  1340. ! .nf
  1341. ! setenv MANPATH /mit/kit/man:/usr/man
  1342. ! .fi
  1343.   .PP
  1344. ! By default,
  1345. ! .I xman
  1346. ! will search each of the following directories (in each of the directories 
  1347. ! specified in the users MANPATH) for manual pages.  If manual pages exist
  1348. ! in that directory then they are added to list of manual pages for 
  1349. ! the corrosponding menu item.
  1350. ! A menu item is only displayed for those sections that actually contain
  1351. ! manual pages.
  1352. ! .ta 1.5i
  1353. ! .nf
  1354. ! Directory    Section Name
  1355. ! ---------    ------------
  1356. ! man1    User Commands       (1)    
  1357. ! man2    System Calls        (2)
  1358. ! man3    Subroutines         (3)
  1359. ! man4    Devices             (4)
  1360. ! man5    File Formats        (5)
  1361. ! man6    Games               (6)
  1362. ! man7    Miscellaneous       (7)
  1363. ! man8    Sys. Administration (8)
  1364. ! manl    Local               (l)
  1365. ! mann    New                 (n)
  1366. ! mano    Old                 (o)
  1367. ! .fi     
  1368. ! For instance, a user has three directories in her manual path and each
  1369. ! contain a directory called \fIman3\fP.  All these manual pages will appear
  1370. ! alphabetically sorted when the user clicks on the menu item called
  1371. ! \fISubroutines (3)\fP.  If there is no directory called \fImano\fP in
  1372. ! any of the directories in her MANPATH, or there are no manual pages
  1373. ! in any of the directories called \fImano\fP then no menu item will be
  1374. ! displayed for the section called \fIOld (o)\fP.
  1375.   .PP
  1376. + .sh "THE MANDESC FILE"        
  1377. + .PP
  1378. + By using the \fImandesc\fP file a user or system manager is able to 
  1379. + more closely control which manual pages will appear in each of the sections
  1380. + represented by menu items in the \fIManual Sections\fP menu.  This 
  1381. + functionality is only avaliable on a section by section basis, and individual
  1382. + manual pages may not be handled in this manner (Although generous use of 
  1383. + symbolic links - ln(1) - will allow almost any configuration you can imagine).
  1384. + The format of the mandesc file is a character followed by a label.  The
  1385. + character determines which of the sections will be added under this label.
  1386. + For instance suppose that you would like to create an extra menu item that 
  1387. + contains all programmer subroutines.  This label should contain all manual
  1388. + pages in both sections two and three.  The \fImandesc\fP file
  1389. + would look like this.
  1390. + .nf     
  1391. +         
  1392. + 2Programmer Subroutines
  1393. + 3Programmer Subroutines
  1394. + .fi
  1395. + This will add a menu item to the \fIManual Sections\fP menu that would
  1396. + bring up a listing of all manual pages in sections two and three of
  1397. + Unix Programmers Manual.  Since the label names are \fIexactly\fP the
  1398. + same they will be added to the same section. Note, however, that the
  1399. + original sections still exist.
  1400. + .PP
  1401. + If you want to completely ignore the default sections in a manual directory
  1402. + the add the line:
  1403. + .nf
  1404. + no default sections
  1405. + .fi
  1406. + Anywhere in your mandesc file.  This keeps xman from searching
  1407. + the default manual sections \fIIn that directory only\fP.  As an example,
  1408. + suppose you want to do the same thing as above, but you don't think that
  1409. + it is useful to have the \fISystem Calls\fP or \fISubroutines\fP sections
  1410. + any longer.  You would need to duplicate the default entries, as well as
  1411. + adding your new one.
  1412. + .nf
  1413. + no default sections
  1414. + 1User Commands       (1)
  1415. + 2Programmer Subroutines
  1416. + 3Programmer Subroutines
  1417. + 4Devices             (4)
  1418. + 5File Formats        (5)
  1419. + 6Games               (6)
  1420. + 7Miscellaneous       (7)
  1421. + 8Sys. Administration (8)
  1422. + lLocal               (l)
  1423. + nNew                 (n)
  1424. + oOld                 (o)
  1425. + .fi
  1426. + Xman will read any section that is of the from \fIman<character>\fP, where
  1427. + <character> is an upper or lower case letter (they are treated distinctly) or
  1428. + a numeral (0-9).  Be warned, however, that man(1) and catman(8) will 
  1429. + not search directories that are non-standard.
  1430. + .PP
  1431.   .I Xman
  1432.   creates temporary files in /tmp for all unformatted man pages and all apropos
  1433.   searches.
  1434. ***************
  1435. *** 186,192 ****
  1436.   mandesc
  1437.   .PP
  1438.   .SH "SEE ALSO"
  1439. ! X(1), X(8C), man(1), apropos(1)
  1440.   .PP
  1441.   .SH ENVIRONMENT
  1442.   DISPLAY - the default host and display to use.
  1443. --- 266,272 ----
  1444.   mandesc
  1445.   .PP
  1446.   .SH "SEE ALSO"
  1447. ! X(1), X(8C), man(1), apropos(1), catman(8)
  1448.   .PP
  1449.   .SH ENVIRONMENT
  1450.   DISPLAY - the default host and display to use.
  1451. -- 
  1452. Mike Wexler(wyse!mikew)    Phone: (408)433-1000 x1330
  1453. Moderator of comp.sources.x
  1454.